sctp: add size validation when walking chunks
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Mon, 28 Jun 2021 19:13:42 +0000 (16:13 -0300)
committerSalvatore Bonaccorso <carnil@debian.org>
Wed, 28 Jul 2021 05:55:40 +0000 (06:55 +0100)
commitbd0e2bcd0a45b160a7c5f66e7c9ea062a5d6f4a9
tree92ba600ccad306ac2841d009a90ee785cdfd03b6
parentac54606ad879e3b60fcf8be696b8603406ee2206
sctp: add size validation when walking chunks

Origin: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit?id=6ef81a5c0e22233e13c748e813c54d3bf0145782
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-3655

[ Upstream commit 50619dbf8db77e98d821d615af4f634d08e22698 ]

The first chunk in a packet is ensured to be present at the beginning of
sctp_rcv(), as a packet needs to have at least 1 chunk. But the second
one, may not be completely available and ch->length can be over
uninitialized memory.

Fix here is by only trying to walk on the next chunk if there is enough to
hold at least the header, and then proceed with the ch->length validation
that is already there.

Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name sctp-add-size-validation-when-walking-chunks.patch
net/sctp/input.c